public RasterNativeBuffer ExtractFramesNativeMemory(
Stream stream,
List<int> frames
)
stream
A System.IO.Stream containing the JPEG 2000 file data from which frames are being extracted.
frames
Frame indices. A list of integers specifying the indices of the frames to be extracted from the input stream. All indices should be 0-based.
A Leadtools.RasterNativeBuffer object that contains a JPEG 2000 file with only the extracted frames.
. This file contains only the extracted frame headers/code streams (not any obtained through the decompressing/recompressing process) so it saves processor time and memory.
This method is very suitable for server applications where multiple clients request specific frames of a JPEG 2000 file.Instead of decompressing and then recompressing the frames this method copies only the needed frame data, saving the data to a new JPEG 2000 file.
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Jpeg2000;
public RasterNativeBuffer ExtractFramesNativeMemoryStreamExample(List<int> frames)
{
FileStream fs = File.OpenRead(Path.Combine(LEAD_VARS.ImagesDir, "image1.jpx"));
Jpeg2000Engine engine = new Jpeg2000Engine();
Jpeg2000FileInformation fileInfo = engine.GetFileInformation(fs);
for (int i = 0; i < frames.Count; i++)
if (frames[i] >= fileInfo.Frame.GetLength(0))
return RasterNativeBuffer.Empty;
RasterNativeBuffer buffer = engine.ExtractFramesNativeMemory(fs, frames);
// Clean up
fs.Close();
return buffer;
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";
}